home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / cug190.zip / ASMT.C < prev    next >
Text File  |  1985-11-15  |  25KB  |  859 lines

  1. /******************************************************************
  2.     mnemonic tables for as68, a 68000 assembler...
  3. */
  4.  
  5. /*        (C) Copyright 1982 Steve Passe        */
  6. /*        All Rights Reserved                    */
  7.  
  8. /* version 1.00 */
  9. /* created 11/2/82 */
  10.  
  11. /* version 1.01
  12.  
  13.     8/30/83    ver. 1.01 modified for Aztec ver. 1.05g    smp
  14.  
  15. */
  16.  
  17. /* begincode */
  18.  
  19. #include "b:as68.h"
  20. #define NULL 0
  21.  
  22. /* def of mtable size, 'MTSIZE'(205), is now in as68.h */
  23.  
  24. struct _mtable mtable[MTSIZE] = {
  25.     "!dummy",        0,        1,
  26.     "abcd",            1,        2,
  27.     "add",            18,        10,
  28.     "add.b",        3,        5,
  29.     "add.l",        8,        10,
  30.     "add.w",        18,        10,
  31.     "addq",            33,        3,
  32.     "addq.b",        28,        2,
  33.     "addq.l",        30,        3,
  34.     "addq.w",        33,        3,
  35.     "addx",            40,        2,
  36.     "addx.b",        36,        2,
  37.     "addx.l",        38,        2,
  38.     "addx.w",        40,        2,
  39.     "and",            53,        6,
  40.     "and.b",        42,        6,
  41.     "and.l",        48,        5,
  42.     "and.w",        53,        6,
  43.     "asl",            63,        3,
  44.     "asl.b",        59,        2,
  45.     "asl.l",        61,        2,
  46.     "asl.w",        63,        3,
  47.     "asr",            70,        3,
  48.     "asr.b",        66,        2,
  49.     "asr.l",        68,        2,
  50.     "asr.w",        70,        3,
  51.     "bcc",            73,        1,
  52.     "bcc.s",        74,        1,
  53.     "bchg",            75,        4,
  54.     "bclr",            79,        4,
  55.     "bcs",            83,        1,
  56.     "bcs.s",        84,        1,
  57.     "beq",            85,        1,
  58.     "beq.s",        86,        1,
  59.     "bge",            87,        1,
  60.     "bge.s",        88,        1,
  61.     "bgt",            89,        1,
  62.     "bgt.s",        90,        1,
  63.     "bhi",            91,        1,
  64.     "bhi.s",        92,        1,
  65.     "ble",            93,        1,
  66.     "ble.s",        94,        1,
  67.     "bls",            95,        1,
  68.     "bls.s",        96,        1,
  69.     "blt",            97,        1,
  70.     "blt.s",        98,        1,
  71.     "bmi",            99,        1,
  72.     "bmi.s",        100,    1,
  73.     "bne",            101,    1,
  74.     "bne.s",        102,    1,
  75.     "bpl",            103,    1,
  76.     "bpl.s",        104,    1,
  77.     "bra",            105,    1,
  78.     "bra.s",        106,    1,
  79.     "bset",            107,    4,
  80.     "bsr",            111,    1,
  81.     "bsr.s",        112,    1,
  82.     "btst",            113,    4,
  83.     "bvc",            117,    1,
  84.     "bvc.s",        118,    1,
  85.     "bvs",            119,    1,
  86.     "bvs.s",        120,    1,
  87.     "chk",            121,    3,
  88.     "clr",            128,    2,
  89.     "clr.b",        124,    2,
  90.     "clr.l",        126,    2,
  91.     "clr.w",        128,    2,
  92.     "cmp",            143,    9,
  93.     "cmp.b",        130,    4,
  94.     "cmp.l",        134,    9,
  95.     "cmp.w",        143,    9,
  96.     "cmpm",            154,    1,
  97.     "cmpm.b",        152,    1,
  98.     "cmpm.l",        153,    1,
  99.     "cmpm.w",        154,    1,
  100.     "dbcc",            155,    1,
  101.     "dbcs",            156,    1,
  102.     "dbeq",            157,    1,
  103.     "dbf",            158,    1,
  104.     "dbge",            159,    1,
  105.     "dbgt",            160,    1,
  106.     "dbhi",            161,    1,
  107.     "dble",            162,    1,
  108.     "dbls",            163,    1,
  109.     "dblt",            164,    1,
  110.     "dbmi",            165,    1,
  111.     "dbne",            166,    1,
  112.     "dbpl",            167,    1,
  113.     "dbra",            168,    1,
  114.     "dbt",            169,    1,
  115.     "dbvc",            170,    1,
  116.     "dbvs",            171,    1,
  117.     "divs",            172,    3,
  118.     "divu",            175,    3,
  119.     "eor",            187,    5,
  120.     "eor.b",        178,    5,
  121.     "eor.l",        183,    4,
  122.     "eor.w",        187,    5,
  123.     "exg",            192,    4,
  124.     "ext",            197,    1,
  125.     "ext.l",        196,    1,
  126.     "ext.w",        197,    1,
  127.     "jmp",            198,    1,
  128.     "jsr",            199,    1,
  129.     "lea",            200,    1,
  130.     "link",            201,    1,
  131.     "lsl",            206,    3,
  132.     "lsl.b",        202,    2,
  133.     "lsl.l",        204,    2,
  134.     "lsl.w",        206,    3,
  135.     "lsr",            213,    3,
  136.     "lsr.b",        209,    2,
  137.     "lsr.l",        211,    2,
  138.     "lsr.w",        213,    3,
  139.     "move",            236,    20,
  140.     "move.b",        216,    6,
  141.     "move.l",        222,    14,
  142.     "move.w",        236,    20,
  143.     "movem",        260,    4,
  144.     "movem.l",        256,    4,
  145.     "movem.w",        260,    4,
  146.     "movep",        266,    2,
  147.     "movep.l",        264,    2,
  148.     "movep.w",        266,    2,
  149.     "moveq",        268,    1,
  150.     "muls",            269,    3,
  151.     "mulu",            272,    3,
  152.     "nbcd",            275,    2,
  153.     "neg",            281,    2,
  154.     "neg.b",        277,    2,
  155.     "neg.l",        279,    2,
  156.     "neg.w",        281,    2,
  157.     "negx",            287,    2,
  158.     "negx.b",        283,    2,
  159.     "negx.l",        285,    2,
  160.     "negx.w",        287,    2,
  161.     "nop",            289,    1,
  162.     "not",            294,    2,
  163.     "not.b",        290,    2,
  164.     "not.l",        292,    2,
  165.     "not.w",        294,    2,
  166.     "or",            307,    6,
  167.     "or.b",            296,    6,
  168.     "or.l",            302,    5,
  169.     "or.w",            307,    6,
  170.     "pea",            313,    1,
  171.     "reset",        314,    1,
  172.     "rol",            319,    3,
  173.     "rol.b",        315,    2,
  174.     "rol.l",        317,    2,
  175.     "rol.w",        319,    3,
  176.     "ror",            326,    3,
  177.     "ror.b",        322,    2,
  178.     "ror.l",        324,    2,
  179.     "ror.w",        326,    3,
  180.     "roxl",            333,    3,
  181.     "roxl.b",        329,    2,
  182.     "roxl.l",        331,    2,
  183.     "roxl.w",        333,    3,
  184.     "roxr",            340,    3,
  185.     "roxr.b",        336,    2,
  186.     "roxr.l",        338,    2,
  187.     "roxr.w",        340,    3,
  188.     "rte",            343,    1,
  189.     "rtr",            344,    1,
  190.     "rts",            345,    1,
  191.     "sbcd",            346,    2,
  192.     "scc",            348,    2,
  193.     "scs",            350,    2,
  194.     "seq",            352,    2,
  195.     "sf",            354,    2,
  196.     "sge",            356,    2,
  197.     "sgt",            358,    2,
  198.     "shi",            360,    2,
  199.     "sle",            362,    2,
  200.     "sls",            364,    2,
  201.     "slt",            366,    2,
  202.     "smi",            368,    2,
  203.     "sne",            370,    2,
  204.     "spl",            372,    2,
  205.     "st",            374,    2,
  206.     "stop",            376,    1,
  207.     "sub",            392,    10,
  208.     "sub.b",        377,    5,
  209.     "sub.l",        382,    10,
  210.     "sub.w",        392,    10,
  211.     "subq",            407,    3,
  212.     "subq.b",        402,    2,
  213.     "subq.l",        404,    3,
  214.     "subq.w",        407,    3,
  215.     "subx",            414,    2,
  216.     "subx.b",        410,    2,
  217.     "subx.l",        412,    2,
  218.     "subx.w",        414,    2,
  219.     "svc",            416,    2,
  220.     "svs",            418,    2,
  221.     "swap",            420,    1,
  222.     "tas",            421,    2,
  223.     "trap",            423,    1,
  224.     "trapv",        424,    1,
  225.     "tst",            429,    2,
  226.     "tst.b",        425,    2,
  227.     "tst.l",        427,    2,
  228.     "tst.w",        429,    2,
  229.     "unlk",            431,    1
  230. };
  231.  
  232. int nn(), nnoy(), nnyy(), nx(), nnxx(), nd(), nd2(), ndob(), ndkk();
  233. int ndoy(), ndyy(), ndyz(), ne(), nf(), nf2(), nfob(), nfoy(), nfyy(), nfyz();
  234. int nhmm(), nj(), njmm(), nr(), nr2(), nrxx(), nsmm(), nv(), cd(), cf();
  235. int cd(), dnoy(), dnyy(), dnyz(), de(), dj(), dr(), dsxx(), dy();
  236. int gnoy(), gnyy(), gnyz(), ge(), gs(), rd(), rf(), sdxx(), sf();
  237.  
  238. struct _mvalue mvalue[] = {
  239.                 NULL,        NULL,        NULL,    NULL,    NULL,    NULL,
  240. /* ABCD */
  241.                 _pd_ani,    _pd_ani,    0xc1,    0x08,    1,        dr,
  242.                 _dn,        _dn,        0xc1,    0x00,     1,        dr,
  243. /* ADD.B */
  244.                 _imd,        _dadr,        0x06,    0x00,    12,        nfoy,
  245.                 _imd,        _dn,        0x06,    0x00,    2,        ndoy,
  246.                 _sadr,        _dn,        0xd0,    0x00,    0,        de,
  247.                 _dn,        _dadr,        0xd1,    0x00,    0,        sf,
  248.                 _dn,        _dn,        0xd0,    0x00,    1,        dr,
  249. /* ADD.L */
  250.                 _imd,        _an,        0xd1,    0xfc,    3,        dnyz,
  251.                 _imd,        _dadr,        0x06,    0x80,    13,        nfyz,
  252.                 _imd,        _dn,        0x06,    0x80,    3,        ndyz,
  253.                 _an,        _an,        0xd1,    0xc8,    1,        dr,
  254.                 _an,        _dn,        0xd0,    0x88,    1,        dr,
  255.                 _dn,        _an,        0xd1,    0xc0,    1,        dr,
  256.                 _dn,        _dn,        0xd0,    0x80,    1,        dr,
  257.                 _dn,        _dadr,        0xd1,    0x80,    0,        sf,
  258.                 _sadr,        _an,        0xd1,    0xc0,    0,        de,
  259.                 _sadr,        _dn,        0xd0,    0x80,    0,        de,
  260. /* ADD.W */
  261.                 _imd,        _an,        0xd0,    0xfc,    2,        dnyy,
  262.                 _imd,        _dadr,        0x06,    0x40,    12,        nfyy,
  263.                 _imd,        _dn,        0x06,    0x40,    2,        ndyy,
  264.                 _an,        _an,        0xd0,    0xc8,    1,        dr,
  265.                 _an,        _dn,        0xd0,    0x48,    1,        dr,
  266.                 _dn,        _an,        0xd0,    0xc0,    1,        dr,
  267.                 _dn,        _dn,        0xd0,    0x40,    1,        dr,
  268.                 _dn,        _dadr,        0xd1,    0x40,    0,        sf,
  269.                 _sadr,        _an,        0xd0,    0xc0,    0,        de,
  270.                 _sadr,        _dn,        0xd0,    0x40,    0,        de,
  271. /* ADDQ.B */
  272.                 _imd,        _dadr,        0x50,    0x00,    0,        cf,
  273.                 _imd,        _dn,        0x50,    0x00,    1,        cd,
  274. /* ADDQ.L */
  275.                 _imd,        _an,        0x50,    0x88,    1,        cd,
  276.                 _imd,        _dadr,        0x50,    0x80,    0,        cf,
  277.                 _imd,        _dn,        0x50,    0x80,    1,        cd,
  278. /* ADDQ.W */
  279.                 _imd,        _an,        0x50,    0x48,    1,        cd,
  280.                 _imd,        _dadr,        0x50,    0x40,    0,        cf,
  281.                 _imd,        _dn,        0x50,    0x40,    1,        cd,
  282. /* ADDX.B */
  283.                 _pd_ani,    _pd_ani,    0xd1,    0x08,    1,        dr,
  284.                 _dn,        _dn,        0xd1,    0x00,    1,        dr,
  285. /* ADDX.L */
  286.                 _pd_ani,    _pd_ani,    0xd1,    0x88,    1,        dr,
  287.                 _dn,        _dn,        0xd1,    0x80,    1,        dr,
  288. /* ADDX.W */
  289.                 _pd_ani,    _pd_ani,    0xd1,    0x48,    1,        dr,
  290.                 _dn,        _dn,        0xd1,    0x40,    1,        dr,
  291. /* AND.B */
  292.                 _imd,        _dadr,        0x02,    0x00,    12,        nfoy,
  293.                 _imd,        _dn,        0x02,    0x00,    2,        ndoy,
  294.                 _imd,        _sr,        0x02,    0x3c,    2,        nnoy,
  295.                 _sadr,        _dn,        0xc0,    0x00,    0,        de,
  296.                 _dn,        _dadr,        0xc1,    0x00,    0,        sf,
  297.                 _dn,        _dn,        0xc0,    0x00,    1,        dr,
  298. /* AND.L */
  299.                 _imd,        _dadr,        0x02,    0x80,    12,        nfyz,
  300.                 _imd,        _dn,        0x02,    0x80,    3,        ndyz,
  301.                 _sadr,        _dn,        0xc0,    0x80,    0,        de,
  302.                 _dn,        _dadr,        0xc1,    0x80,    0,        sf,
  303.                 _dn,        _dn,        0xc0,    0x80,    1,        dr,
  304. /* AND.W */
  305.                 _imd,        _dadr,        0x02,    0x40,    12,        nfyy,
  306.                 _imd,        _dn,        0x02,    0x40,    2,        ndyy,
  307.                 _imd,        _sr,        0x02,    0x7c,    2,        nnyy,
  308.                 _sadr,        _dn,        0xc0,    0x40,    0,        de,
  309.                 _dn,        _dadr,        0xc1,    0x40,    0,        sf,
  310.                 _dn,        _dn,        0xc0,    0x40,    1,        dr,
  311. /* ASL.B */
  312.                 _imd,        _dn,        0xe1,    0x00,    1,        cd,
  313.                 _dn,        _dn,        0xe1,    0x20,    1,        rd,
  314. /* ASL.L */
  315.                 _imd,        _dn,        0xe1,    0x80,    1,        cd,
  316.                 _dn,        _dn,        0xe1,    0xa0,    1,        rd,
  317. /* ASL.W */
  318.                 _imd,        _dn,        0xe1,    0x40,    1,        cd,
  319.                 _dn,        _dn,        0xe1,    0x60,    1,        rd,
  320. /* ASL */
  321.                 _dadr,        _none,        0xe1,    0xc0,    0,        nf,
  322. /* ASR.B */
  323.                 _imd,        _dn,        0xe0,    0x00,    1,        cd,
  324.                 _dn,        _dn,        0xe0,    0x20,    1,        rd,
  325. /* ASR.L */
  326.                 _imd,        _dn,        0xe0,    0x80,    1,        cd,
  327.                 _dn,        _dn,        0xe0,    0xa0,    1,        rd,
  328. /* ASR.W */
  329.                 _imd,        _dn,        0xe0,    0x40,    1,        cd,
  330.                 _dn,        _dn,        0xe0,    0x60,    1,        rd,
  331. /* ASR */
  332.                 _dadr,        _none,        0xe0,    0xc0,    0,        nf,
  333. /* BCC */
  334.                 _address,    _none,        0x64,    0x00,    2,        nnxx,
  335. /* BCC.S */
  336.                 _address,    _none,        0x64,    0x00,    1,        nx,
  337. /* B